A user typically interacts with a computer software application through a user interface, i.e., a front end of the application. A back end refers to portions of the application that are hidden from the user and not shown on the user interface. When the user enters a command on the user interface, the front end typically records the user's instructions and passes that information to the back end. The back end then performs all the operations according to the user's instructions and supplies the front end with data to be displayed on the user interface.
Currently, an application typically stores only raw data, which are simple machine readable data with limited descriptions. Display data that are more descriptive and intended for users are typically derived from the back end of the application whenever needed. Since an application may involve retrieving and displaying the same set of raw data multiple times from different places in the application, the derivation process may need to be performed repeatedly for the same set of data, resulting in redundant coding throughout the application. With duplicated code in the application, application size may be increased and more work may be involved to maintain the code. Consequently, the application performance may be slowed down. In addition, the display data derived from the same set of raw data may be inconsistently formatted.